/*=============================================================================
**                              LINDBOARD
**                            Copyright 2014
**-----------------------------------------------------------------------------
** Supported MCUs      : MCU STM32F103
** Supported Compilers : Compiler independent
**-----------------------------------------------------------------------------
** File name         : input.h
**
** Module name       : input
**
** Requirement specification : 
**
** Summary: Input IO controller 
**
**= History ====================================================================
** 01.00  26/04/2014  Cuong Chu
** - Creation
==============================================================================*/
#ifndef INPUT_INPUT_H
#define INPUT_INPUT_H
/*****************************************************************************/
/* INCLUSIONS                                                                */
/*****************************************************************************/
#include "stdint.h"
#include "stm32f10x.h"
#include "bsp/bsp.h"
/*****************************************************************************/
/* DEFINATION OF CONST                                                       */
/*****************************************************************************/
#define IOCTRL_NUMBER_OF_INPUT          64
/*****************************************************************************/
/* DEFINATION OF TYPES                                                       */
/*****************************************************************************/
typedef enum
{
  IN_CH_1 = 0,
  IN_CH_2  ,
  IN_CH_3  ,
  IN_CH_4  ,
  IN_CH_5  ,
  IN_CH_6  ,
  IN_CH_7  ,
  IN_CH_8  ,
  IN_CH_9  ,
  IN_CH_10 ,
  IN_CH_11 ,
  IN_CH_12 ,
  IN_CH_13 ,
  IN_CH_14 ,
  IN_CH_15 ,
  IN_CH_16 ,
  IN_CH_17 ,
  IN_CH_18 ,
  IN_CH_19 ,
  IN_CH_20 ,
  IN_CH_21 ,
  IN_CH_22 ,
  IN_CH_23 ,
  IN_CH_24 ,
  IN_CH_25 ,
  IN_CH_26 ,
  IN_CH_27 ,
  IN_CH_28 ,
  IN_CH_29 ,
  IN_CH_30 ,
  IN_CH_31 ,
  IN_CH_32 ,
  IN_CH_33 ,
  IN_CH_34 ,
  IN_CH_35 ,
  IN_CH_36 ,
  IN_CH_37 ,
  IN_CH_38 ,
  IN_CH_39 ,
  IN_CH_40 ,
  IN_CH_41 ,
  IN_CH_42 ,
  IN_CH_43 ,
  IN_CH_44 ,
  IN_CH_45 ,
  IN_CH_46 ,
  IN_CH_47 ,
  IN_CH_48 ,
  IN_CH_49 ,
  IN_CH_50 ,
  IN_CH_51 ,
  IN_CH_52 ,
  IN_CH_53 ,
  IN_CH_54 ,
  IN_CH_55 ,
  IN_CH_56 ,
  IN_CH_57 ,
  IN_CH_58 ,
  IN_CH_59 ,
  IN_CH_60 ,
  IN_CH_61 ,
  IN_CH_62 ,
  IN_CH_63 ,
  IN_CH_64 ,
  IN_CH_C0 ,
  IN_CH_C1 ,
  IN_CH_C2 ,
  IN_CH_C3 ,
  IN_CH_AUTO,
  IN_CH_MANUAL

}INPUT_InputType;
/*****************************************************************************/
/* DECLARATION OF GLOBAL FUNCTION                                            */
/*****************************************************************************/
/******************************************************************************
** Function Name: INPUT_IOEnableClock(void)
** Description  : The function enbales clock for all GPIOs
** Parameter    : None
** Return       : None
** Note         : 
******************************************************************************/
void INPUT_IOEnableClock
(
  void
);
/******************************************************************************
** Function Name: INPUT_InputInit( INPUT_InputType channel )
** Description  : The function inits input selected channel
** Parameter    : IN_CH_1 ... IN_CH_2
** Return       : None
** Note         : 
******************************************************************************/
void INPUT_InputInit
(
  INPUT_InputType channel
);
/******************************************************************************
** Function Name: INPUT_ReadInput( INPUT_InputType channel)
** Description  : The function reads input selected channel
** Parameter    : IN_CH_1 ... IN_CH_2
** Return       : STD_LOW or STD_HIGH 
** Note         : 
******************************************************************************/
COMST32_LogicLevel INPUT_ReadInput
(
  INPUT_InputType channel
);
#endif /* INPUT_INPUT_H */
